<?php
// +----------------------------------------------------------------------
// | 海豚PHP框架 [ DolphinPHP ]
// +----------------------------------------------------------------------
// | 版权所有 2016~2019 广东卓锐软件有限公司 [ http://www.zrthink.com ]
// +----------------------------------------------------------------------
// | 官方网站: http://dolphinphp.com
// +----------------------------------------------------------------------

namespace app\configs\admin;

use app\admin\controller\Admin;
use think\Db;
use app\common\builder\ZBuilder;

/**
 * Cooperate控制器
 * @package app\banner\admin
 */
class Apply extends Admin
{
    /**
     * 首页
     * @author 蔡伟明 <314013107@qq.com>
     * @return mixed
     */

    public function index(){
        $map = $this->getMap();
        $data_list = db::name('point_apply')
            ->alias("a")
            ->join("user b","a.user_id=b.id","left")
            ->field("a.*,b.username,b.type,b.mobile")
            ->where($map)
            ->order("status,a.id desc")
            ->paginate();

            $btn_add = [
                'title' => '审核通过',
                'icon'  => 'fa fa-fw fa-heart',
                //'class' => 'btn btn-xs btn-default ajax-get confirm',
                //'data-title' => '确定要同意？操作后会扣除对应分数',
                'href'  => url('apply_sure', ['id' => '__id__'])
            ];
            
            $btn_adds = [
                'title' => '审核不通过',
                'icon'  => 'fa fa-fw fa-rotate-right',
                'href'  => url('apply_sures', ['id' => '__id__'])
            ];
        // 使用ZBuilder快速创建数据表格
        return ZBuilder::make('table')
            ->setPageTitle('提现申请管理') // 设置页面标题
            ->setTableName('point_apply') // 设置数据表名
            ->hideCheckbox()
            ->setSearch(['b.username' => '申请人']) // 设置搜索参数
            ->addColumns([ // 批量添加列
                ['username','姓名','callback',function($v,$data){
                    if(stristr($v,"*")){
                        return  $data['mobile'];
                    }else {
                        return  $v;
                    }
                    
                },'__data__'],
                ['user_id','申请人ID'],
                ['mobile','电话'],
                ['point','金额'],
                ['status','提现状态','switch'],
               
                ['reson','备注'],
               
                ['create_time','申请时间'],
                ['update_time','审核时间'],
             //   ['img','票据','picture'],
                ['right_button', '操作', 'btn']
            ])
           // ->addRightButtons('delete') // 批量添加右侧按钮
            ->addRightButton('btn_add',$btn_add,1) // 批量添加右侧按钮
            ->addRightButton('btn_add',$btn_adds,1) // 批量添加右侧按钮
            ->setRowList($data_list) // 设置表格数据
            //->setColumnWidth(["content"=>450])
            ->fetch(); // 渲染页面
    }
    
    
    
    public function apply_sure($id){
        $info=Db::name("point_apply")->find($id);
        if($info['status']==1){
            return $this->error("已审核，无需再次操作");
        }
        $time=date("Y-m-d H:i:s");
        
        $point=Db::name("user")->where("id",$info['user_id'])->value("point");
        if($point<$info['point']){
            return $this->error("该用户剩余分数不够,不能提现");
        }
        
        
        if ($this->request->isPost()) {
            $data = $this->request->post();
            
            //修改状态
            $r=Db::name("point_apply")->where("id",$id)->update([
                "status"=>1,
               // "img"=>$data['img'],
                "reson"=>'',
                "update_time"=>$time,
            ]);
            
            //写入数据库
            $insert_data=[
                "point"=>-$info['point'],
                "user_id"=>$info['user_id'],
                "create_time"=>$time,
                "remarks"=>"提现",
                "type"=>2,
            ];
            Db::name("point_log")->insert($insert_data);
            Db::name("user")->where("id",$info['user_id'])->setDec('point',(int)$info['point']);
            
            return $this->success("审核成功", null, '_close_pop');
        }
        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
        ->setPageTitle('提现通过') // 设置页面标题
        ->addFormItems([ // 批量添加表单项
           // ['image', 'img', '票据'],
            ['textarea', 'reson', '备注'],
        ])
        ->fetch();
        
        
       
    }
    
    
    public function apply_sures($id){
        $info=Db::name("point_apply")->find($id);
        if($info['status']==1){
            return $this->error('该申请已审核不能退回', null, '_close_pop');
        }
        if ($this->request->isPost()) {
            $data = $this->request->post();
            
            $r=db('point_apply')->where("id",$id)->update([
                "reson"=>$data['reson'],
                "status"=>2,
                "update_time"=>date("Y-m-d H:i:s"),
            ]);
            if($r){
                return $this->success('退回成功', null, '_close_pop');
            }else {
                return $this->error('退回失败', null, '_close_pop');
            }
        }
        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
        ->setPageTitle('审核不通过') // 设置页面标题
        ->addFormItems([ // 批量添加表单项
            ['textarea', 'reson', '退回理由'],
            
        ])
        ->fetch();
    }
    
    
    
    
    
    
    
    
    
    
}
